// 纯代码模拟选择夹(选项卡)切换页面
package main

import (
	app "gitee.com/go_888/xcgui/xcgui/app"
	widget "gitee.com/go_888/xcgui/xcgui/widget"
	window "gitee.com/go_888/xcgui/xcgui/window"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

var (
	a *app.X结构_全局API
	w *window.Window

	layoutTab *widget.X结构_布局
	tabBtn1   *widget.X结构_按钮
	tabBtn2   *widget.X结构_按钮
	tabBtn3   *widget.X结构_按钮

	layoutBody  *widget.X结构_布局
	layoutPage1 *widget.X结构_布局
	layoutPage2 *widget.X结构_布局
	layoutPage3 *widget.X结构_布局
)

func main() {
	a = app.X创建(true)
	a.X启用DPI(true)
	a.X启用自动DPI(true)
	w = window.X创建窗口(0, 0, 600, 400, "选择夹切换页面", 0, xcc.X窗口样式_默认样式)

	// 我是喜欢创建一个水平布局元素, tab按钮都放在里面
	layoutTab = widget.X创建布局(14, 35, 500, 30, w.X句柄)
	// 放在水平布局元素中的组件, x, y绝对坐标是无效的
	tabBtn1 = widget.X创建按钮(0, 0, 100, 30, "页面1", layoutTab.X句柄)
	tabBtn2 = widget.X创建按钮(0, 0, 100, 30, "页面2", layoutTab.X句柄)
	tabBtn3 = widget.X创建按钮(0, 0, 100, 30, "页面3", layoutTab.X句柄)

	// 设为单选类型按钮
	tabBtn1.X设置类型EX(xcc.X对象扩展类型_单选按钮)
	tabBtn2.X设置类型EX(xcc.X对象扩展类型_单选按钮)
	tabBtn3.X设置类型EX(xcc.X对象扩展类型_单选按钮)
	// 设置为默认按钮样式, 就不会是单选按钮样式了
	tabBtn1.X设置样式(xcc.X对象样式_按钮_默认)
	tabBtn2.X设置样式(xcc.X对象样式_按钮_默认)
	tabBtn3.X设置样式(xcc.X对象样式_按钮_默认)
	// 默认选中第一个
	tabBtn1.X设置选中(true)

	// 主体部分, 页面都放进这里面, 我是喜欢这样设计, 不是必须
	layoutBody = widget.X创建布局(14, 65, 500, 350, w.X句柄)
	// 第一页
	layoutPage1 = widget.X创建布局(0, 0, 500, 350, layoutBody.X句柄)
	// 第二页
	layoutPage2 = widget.X创建布局(0, 0, 500, 350, layoutBody.X句柄)
	// 第三页
	layoutPage3 = widget.X创建布局(0, 0, 500, 350, layoutBody.X句柄)
	// 只让第一页显示, 其他页都设为不显示
	layoutPage2.X显示(false)
	layoutPage3.X显示(false)

	// 给按钮绑定页面, 绑定后切换页面的原理就是: 你点哪个按钮就显示哪个页面
	tabBtn1.X设置绑定元素(layoutPage1.X句柄)
	tabBtn2.X设置绑定元素(layoutPage2.X句柄)
	tabBtn3.X设置绑定元素(layoutPage3.X句柄)

	// 页面中放置内容
	widget.X创建形状文本(0, 0, 100, 30, "我是第一页", layoutPage1.X句柄)
	widget.X创建形状文本(0, 0, 100, 30, "我是第二页", layoutPage2.X句柄)
	widget.X创建形状文本(0, 0, 100, 30, "我是第三页", layoutPage3.X句柄)

	w.X显示(true)
	a.X运行()
	a.X退出()
}
